7-48 将数倒置
mirco-akira
# 7-48 将数倒置
分数 6 作者 c课程组 单位 湖南工程学院
输入一个四位数的正整数,请将其逆着输出来。
输入格式: 在一行中输入一个四位数的正整数。
输出格式: 在一行中依次输出个位数、十位数、百位数、千位数。(不管是否为0,都输出来,且中间无空格)
输入样例1: 2631
输出样例1: 1362
输入样例2: 2010
输出样例2: 0102
代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB
# 方法1—数组方法
#include <stdio.h>
int main(){
char str[4]; // 对于这种具体要求的题目,使用数组更容易完成
scanf("%s",&str);
printf("%c%c%c%c",str[3],str[2],str[1],str[0]);
}
1
2
3
4
5
6
2
3
4
5
6
# 方法2—数学计算
#include <stdio.h>
#include <math.h> //导入数学函数库
int main(void){
int number; //定义一个四位整数
int unit, decade, hunders, kiobit; //定义四位整数倒置后的个, 十, 百, 千位
scanf("%d",&number); //输入一个四位数
if(number >= 1000 && number < 10000){//如果输入的数是四位数就执行if里面的语句
// fmod(x, y)表示求(x / y)的余数
kiobit = fmod(number,10); //倒置后的千位
hunders = (fmod(number,100) - fmod(number,10)) / 10; //倒置后的百位
decade = (fmod(number,1000) - fmod(number,100)) / 100; //倒置后的十位
unit = (number - fmod(number,1000)) / 1000; //倒置后的个位
}
printf("%d%d%d%d", kiobit, hunders, decade, unit); //依次输出倒置后的千,百,十,个位
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
解题思路: step1:取出倒置后的千位 step2:取出倒置后的百位 step3:取出倒置后的十位 step4:取出倒置后的个位 step5:依次输出
归属知识点:
- 方法1: 数组的使用
- 方法2: 数学函数库 运算符的优先级 条件判断